import { ReactNode, lazy } from 'react';
import Home from '@/component/Home';

const G2Plot = lazy(() => import('@/component/G2Plot'));
const BeautifulDnd = lazy(() => import('@/component/Beautiful-dnd'));
const ArcoDesign = lazy(() => import('@/component/Arco Design'));
const AntV_X6_practice = lazy(() => import('@/component/AntV-X6_practice'));
const AntV_X6_Dnd = lazy(() => import('@/component/AntV-X6_Dnd'));
const Form_shouldUpdate = lazy(() => import('@/component/Form_shouldUpdate'));
const Fn = lazy(() => import('@/component/Cmpts/Fn.jsx'));
const Class = lazy(() => import('@/component/Cmpts/Class.jsx'));
const ModalRender = lazy(() => import('@/component/ModalRender/index.jsx'));
const ReactDraggable = lazy(
  () => import('@/component/React-draggable/index.jsx')
);
const ReactFlowRenderer = lazy(
  () => import('@/component/ReactFlowRenderer/index.jsx')
);
const Demo_mockjs = lazy(() => import('@/component/Demo_mockjs'));
const D3_demo = lazy(() => import('@/component/D3_Demo'));
const Echarts = lazy(() => import('@/component/Echarts'));
const CustomSelectDemo = lazy(() => import('@/component/CustomSelectDemo'));
const LyricDemo = lazy(() => import('@/component/LyricDemo'));
const RollingLoad = lazy(() => import('@/component/RollingLoad'));
const ReactMapDemo = lazy(() => import('@/component/ReactMapDemo'));
const Draft = lazy(() => import('@/component/Draft'));
const AoMaoEditor = lazy(() => import('@/component/AoMaoEditor'));
const CustomLoading = lazy(() => import('@/component/CustomLoading/index'));
const ReactSortableHoc = lazy(
  () => import('@/component/ReactSortableHoc/index.jsx')
);
const CustomDemo = lazy(() => import('@/component/CustomDemo'));
const TreeSelect = lazy(() => import('@/component/TreeSelect'));
const DemoTree = lazy(() => import('@/component/Tree'));
const Resizable = lazy(() => import('@/component/Resizable'));
const Vditor = lazy(() => import('@/component/Vditor'));
const CustomForm = lazy(() => import('@/component/CustomForm'));
const FabricDemo = lazy(() => import('@/component/FabricDemo'));
const AntvG2Demo = lazy(() => import('@/component/AntV-G2'));
const Map = lazy(() => import('@/component/Map'));
const ResourceTopology = lazy(() => import('@/component/ResourceTopology'));
const WangEditor = lazy(() => import('@/component/WangEditor'));
const ReactSortablejs = lazy(() => import('@/component/ReactSortablejs'));
const ReactSmoothDnd = lazy(() => import('@/component/ReactSmoothDnd'));
const Fullcalendar = lazy(() => import('@/component/Fullcalendar'));
const EchartsMap = lazy(() => import('@/component/EchartsMap'));
const MarkdownTOC = lazy(() => import('@/component/MarkdownTOC'));
const Waterfall = lazy(() => import('@/component/Waterfall'));
const TreeGraph = lazy(() => import('@/component/TreeGraph'));
const GGEditor = lazy(() => import('@/component/GGEditor'));
const RRWeb = lazy(() => import('@/component/RRWeb'));

interface menuProps {
  [projectName: string]: ReactNode;
}

export const menuConfigMap: menuProps = {
  Home,
  G2Plot,
  BeautifulDnd,
  ArcoDesign,
  AntV_X6_practice,
  AntV_X6_Dnd,
  Form_shouldUpdate,
  Fn,
  Class,
  ModalRender,
  ReactDraggable,
  ReactFlowRenderer,
  Demo_mockjs,
  D3_demo,
  Echarts,
  CustomSelectDemo,
  LyricDemo,
  RollingLoad,
  ReactMapDemo,
  Draft,
  AoMaoEditor,
  CustomLoading,
  ReactSortableHoc,
  CustomDemo,
  TreeSelect,
  DemoTree,
  Resizable,
  Vditor,
  CustomForm,
  FabricDemo,
  AntvG2Demo,
  Map,
  ResourceTopology,
  WangEditor,
  ReactSortablejs,
  ReactSmoothDnd,
  Fullcalendar,
  EchartsMap,
  MarkdownTOC,
  Waterfall,
  TreeGraph,
  GGEditor,
  RRWeb,
};
